/*
 * FabMap.h
 *
 *  Created on: 10/11/2011
 *      Author: will
 */

#ifndef FABMAP_H_
#define FABMAP_H_

#include <iostream>
#include <fstream>
#include <string>
#include <eigen3/Eigen/Core>
#include <opencv2/opencv.hpp>
#include <mex.h>

#include "ChowLiuTree.h"

using std::string;
using std::ifstream;
using std::ofstream;
using cv::Mat;

class FabMap {
public:
	FabMap();
	virtual ~FabMap();
	FabMap(const FabMap & other);
	FabMap & operator=(const FabMap & other);

	Mat codebook;
	//ClTree clTree;

	void loadCodebook(string fileName);
	void loadClTree(string fileName);

	double getVisLikelihood(Mat* currBow, Mat* prevBow);
	double getVisLikelihood_mean(Mat* currBow);

};

#endif /* FABMAP_H_ */
